import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Collectors;

public class User {
    String name;

    public String getName() { return name; }

    public void setName(String name) { this.name = name; }



     public static void main(String[] args) {

         HashMap<Object, List> map = new HashMap<>();

         for (int i = 0; i < 3000; i++) {

             int key = (128 - 1) & spread(Integer.hashCode(i));
             if (map.containsKey(key)) {
                 map.get(key).add(i);
             } else map.put(key, newArrayList(i));


         }
         for (Map.Entry<Object, List> entry : map.entrySet()) {
             System.out.println(entry.getKey() + "=" + entry.getValue().stream().map(e->e.toString()).collect(Collectors.joining(",")));
         }


         ArrayList<List> lists = new ArrayList<>(map.values());


         ConcurrentHashMap<Object, Object> cmap = new ConcurrentHashMap<>(128);


         int arr[] = {0, 128, 256, 384, 512, 640, 768, 896, 1024, 1152, 1280, 1408, 1536, 1664, 1792, 1920, 2048, 2176, 2304, 2432, 2560, 2688, 2816, 2944};
         for (int i : arr) {
             cmap.put(i, "hh");
         }


     }

    private static List newArrayList(int i) {
        ArrayList<Object> list = new ArrayList<>();
        list.add(i);
        return list;
    }


    static final int spread(int h) {
        return (h ^ (h >>> 16)) & 0x7fffffff;
    }
}

